package com.cn.demo4.service.impl;

import com.cn.demo4.dao.UserDao;
import com.cn.demo4.dao.impl.UserDaoImpl;
import com.cn.demo4.model.UserModel;
import com.cn.demo4.service.IUserService;

import java.util.List;

public class UserServiceImpl implements IUserService {
    /**
     * 用户注册，
     * @param userModel
     * @return
     */
    @Override
    public String add(UserModel userModel) {
        UserDao UserDao = new UserDaoImpl();
        /**
         * 1.判断当前用户是否存在
         * 2.如果存在则提示用户重新注册
         * 3.如果不存在则直接新增数据，提示注册成功
         */
        //通过用户名来判断是否为true或者为false
        boolean bool = UserDao.findByUserName(userModel.getUserName());
        if (bool) {
            //若bool为true则表示当前用户已经被注册
            return "isHave";
        } else {
            //JDBC返回的时新增的条数
            int result = UserDao.add(userModel);
            //三元运算符判断数据新增是否成功，成功result==1，返回success，失败result==0，返回error
            return result == 1 ? "success" : "error";
        }


    }

    /**
     *
     * @param userModel
     * @return
     */

    @Override
    public String login(UserModel userModel) {
        //1.判断前台验证码与session验证码是否相等，
        if (userModel.getCode().equalsIgnoreCase(userModel.getSessionCode())) {
            //2.判断手机号和密码是否相等
            UserDao UserDao = new UserDaoImpl();
            UserModel model = UserDao.findByPhoneAndPassword(userModel);
            return model == null ? "" : "success";
        } else {
            return "codeError";
        }

    }

    /**
     * 查询所有数据
     * @return
     */
    @Override
    public List<UserModel> findAll(UserModel userModel) {
        //1.调用数据实现层
        UserDao UserDao = new UserDaoImpl();
        return UserDao.findAll(userModel);
    }



    @Override
    public String del() {
        return null;
    }

    /**
     * 删除功能
     * @param id
     * @return
     */
    @Override
    public int del(Integer id) {
        UserDao UserDao = new UserDaoImpl();

        return UserDao.del(id);
    }

    /**
     * 根据用户id查询数据
     * @param id
     * @return
     */
    @Override
    public UserModel findById(Integer id) {
        UserDao UserDao = new UserDaoImpl();
        return UserDao.findById(id);
    }

    @Override
    public String edit(UserModel userModel) {
        UserDao UserDao = new UserDaoImpl();
        /**
         * 1.判断当前用户是否存在
         * 2.如果存在则提示用户重新注册
         * 3.如果不存在则直接新增数据，提示修改成功
         */
        //通过用户名来判断是否为true或者为false
        boolean bool = UserDao.findByUserName(userModel.getUserName());
        if (bool) {
            //若bool为true则表示当前用户已经被注册
            return "isHave";
        } else {
            //JDBC返回的时新增的条数
            int result = UserDao.edit(userModel);
            //三元运算符判断数据新增是否成功，成功result==1，返回success，失败result==0，返回error
            return result == 1 ? "success" : "error";
        }

    }

    /**
     * 修改密码
     *
     * @param userModel
     * @return
     */

    @Override
    public String editPassword(UserModel userModel) {
        UserDao UserDao = new UserDaoImpl();
        //判断前台传过来的密码是否相等
        if (userModel.getPassword().equals(userModel.getRePassword())) {
            return "isHave";
        } else {
            //JDBC返回的时新增的条数
            int result = UserDao.editPassword(userModel);
            //三元运算符判断数据新增是否成功，成功result==1，返回success，失败result==0，返回error
            return result == 1 ? "success" : "error";
        }

    }

    @Override
    public int getCount(UserModel userModel) {
        UserDao userDao = new UserDaoImpl();
        return userDao.getCount(userModel);
    }

    @Override
    public UserModel findByPhone(String phone) {
        UserDao userDao = new UserDaoImpl();
        return userDao.findByPhone(phone);
    }



}
